#ifndef CCODEPROFILER_H_
#define CCODEPROFILER_H_
#include <windows.h>
#include <vector>
#include <time.h>
#include <fstream>
#include <string>
using namespace std;

class TotalResults
{
private:
	string m_strFunctName;
	int m_nCounter;
	double m_dTotalResults;
	vector<double> m_vResults; 
public:
	
	vector<double>* GetResults( void ) { return &m_vResults; }
	double GetResultsData( int i ) { return m_vResults[ i ]; }

	string GetFunctName( void ) { return m_strFunctName; }
	void SetFunctName( string strFunctName ) { m_strFunctName = strFunctName; }

	int GetCount( void ) { return m_nCounter; }
	void SetCount( int Number ) { m_nCounter = Number; }

	double GetTotals( void ) { return m_dTotalResults; }
	void SetTotals( double Totals ) { m_dTotalResults = Totals; }
	
	
};

class CCodeProfiler
{
private:
	LARGE_INTEGER m_LIStartingTime;
	LARGE_INTEGER m_LIEndingTime;
	LARGE_INTEGER m_LIFreq;
	vector<TotalResults*> m_vResultsTotal;
 
public:

	CCodeProfiler( void );
	void StartTimer( void );
	void EndTimer( void );
	void ResultOfTime( string FunctName );
	void SaveResults( void );
};
#endif 